<?php

namespace common\models;

use Yii;
use yii\behaviors\TimestampBehavior;

/**
 * This is the model class for table "{{%article}}".
 *
 * @property string $id
 * @property int $cate_id 分类ID
 * @property string $author 文章作者
 * @property string $title 文章标题
 * @property int $browse 浏览数量
 * @property string $content 文章内容
 * @property int $created_at 创建时间
 * @property int $updated_at 更新时间
 * @property string $head_pic 头部图片
 * @property int $status 文章状态
 */
class Article extends \yii\db\ActiveRecord
{
    /**
     * {@inheritdoc}
     */
    public static function tableName()
    {
        return '{{%article}}';
    }

    /**
     * 自动更新时间戳
     * @return array
     */
    public function behaviors()
    {
        return [
            TimestampBehavior::className(),
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function rules()
    {
        return [
            [['cate_id', 'author', 'title', 'browse', 'created_at', 'updated_at'], 'required'],
            [['cate_id', 'browse', 'created_at', 'updated_at', 'status'], 'integer'],
            [['content'], 'string'],
            [['author'], 'string', 'max' => 32],
            [['title', 'head_pic'], 'string', 'max' => 100],
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function attributeLabels()
    {
        return [
            'id' => '编号',
            'cate_id' => '文章分类',
            'author' => '作者',
            'title' => '标题',
            'browse' => '浏览量',
            'content' => '内容',
            'created_at' => '添加时间',
            'updated_at' => '更新时间',
            'head_pic' => '文章首图',
            'status' => '文章状态',
        ];
    }

    public static function getArticleTitle($id)
    {
        return self::findOne($id)->title;
    }

    /**
     * 增加和修改的时间
     * @param bool $insert
     * @return bool
     */
    public function beforeSave($insert)
    {
        if (parent::beforeSave($insert)) {
            //新增 添加创建时间
            if ($insert) {
                $this->author = Yii::$app->user->identity->nickname;
            }
            return true;
        } else {
            return false;
        }

    }
}
